<%-- 
    Document   : userhome
    Created on : 25/08/2011, 14:10:28
    Author     : Marco Antonio
--%>

<%@page import="entidades.Classificacao"%>
<%@page import="entidades.Jogo"%>
<%@page import="entidades.TimeFutebol"%>
<%@page import="entidades.Campeonato"%>
<%@page import="dao.Dao"%>
<%@page import="java.util.List"%>
<%@page import="entidades.Usuario"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Bolão</title>
        <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
        <%
            Usuario u = (Usuario) session.getAttribute("logado");
            String aux = "";
            if (session.getAttribute("logado") == null) {
                response.sendRedirect("index.jsp");
            } else {
                aux = "<a href=\"userhome.jsp\">Home</a>";
            }
        %>
        <div id="pagina">
            <div id="banner"></div>
            <div id="status">
                <p class="esquerda"><%=aux%> - Classicação</p> 
                <p class="direita"><%=u.getUsuario()%>(<a href="ServletGeral">Deslogar</a>)</p>
            </div>
            <div id="menu">
                <ul>
                    <li><a href="perfil.jsp">Perfil</a></li>
                    <li><a href="palpites.jsp">Palpites</a></li>
                    <li><a href="ranking.jsp">Ranking</a></li>
                    <li><a href="classificacao.jsp">Classificação</a></li>
                </ul>
            </div>
            <div id="conteudo">

                <form name="FormularioClassificacao" action="ServletClassificacao" method="POST">
                    <p>  
                        <select name="idcampeonato">
                            <option value="-1">Selecione um Campeonato</option>
                            <%
                                List<Campeonato> listaCampeonato = new Dao<Campeonato>(Campeonato.class).list();
                                if (!listaCampeonato.isEmpty()) {
                                    for (Campeonato c : listaCampeonato) {
                                        out.println("<option value=\"" + c.getId() + "\">" + c.getNome() + "</option>");
                                    }
                                }
                            %>
                        </select>
                        <input type="submit" value="Selecionar Campeonato" name="op" />
                    </p>
                    <%

                        if ((session.getAttribute("campeonatoClassificacao") != null)) {
                            Campeonato camp = (Campeonato) session.getAttribute("campeonatoClassificacao");

                            List<TimeFutebol> times = camp.getTimes();

                            List<Jogo> jogo = new Dao<Jogo>(Jogo.class).listByRodadaCampeonato(camp.getId());

                            for (TimeFutebol t : times) {
                                for (Jogo j : jogo) {
                                    if ((j.getGolMandante() != -1) && (j.getGolVisitante() != -1)) {

                                        List<Classificacao> classificacoes = new Dao<Classificacao>(Classificacao.class).list();
                                        Classificacao c = null;
                                        if (!classificacoes.isEmpty()) {
                                            for (Classificacao classif : classificacoes) {
                                                if (classif.getCampeonato().getId() == camp.getId()
                                                        && classif.getTime().getId() == t.getId()) {
                                                    c = classif;
                                                }
                                            }
                                        }
                                        boolean achou = true;
                                        if (c == null) {
                                            c = new Classificacao();
                                            achou = false;
                                        }

                                        if (j.getMandante().getId() == t.getId()) {
                                            if (j.getGolMandante() > j.getGolVisitante()) {
                                                c.setPontos(c.getPontos() + 3);
                                                c.setVitorias(c.getVitorias() + 1);
                                            } else if (j.getGolMandante() < j.getGolVisitante()) {
                                                c.setDerrotas(c.getDerrotas() + 1);
                                            } else {
                                                c.setPontos(c.getPontos() + 1);
                                                c.setEmpates(c.getEmpates() + 1);
                                            }

                                            c.setGolsCon(c.getGolsCon() + j.getGolVisitante());
                                            c.setGolsPro(c.getGolsPro() + j.getGolMandante());

                                        } else if (j.getVisitante().getId() == t.getId()) {
                                            if (j.getGolVisitante() > j.getGolMandante()) {
                                                c.setPontos(c.getPontos() + 3);
                                                c.setVitorias(c.getVitorias() + 1);
                                            } else if (j.getGolVisitante() < j.getGolMandante()) {
                                                c.setDerrotas(c.getDerrotas() + 1);
                                            } else {
                                                c.setPontos(c.getPontos() + 1);
                                                c.setEmpates(c.getEmpates() + 1);
                                            }

                                            c.setGolsCon(c.getGolsCon() + j.getGolMandante());
                                            c.setGolsPro(c.getGolsPro() + j.getGolVisitante());
                                        }
                                        c.setCampeonato(camp);
                                        c.setTime(t);
                                        c.setJogos(c.getJogos() + 1);
                                        c.setSaldoGols(c.getGolsPro() - c.getGolsCon());
                                        if (achou) {
                                            new Dao<Classificacao>(Classificacao.class).update(c);
                                        } else {
                                            new Dao<Classificacao>(Classificacao.class).insert(c);
                                        }
                                    }
                                }
                            }


                            List<Classificacao> classificacoes = new Dao<Classificacao>(Classificacao.class).listByPontuacaoAndVitorias();
                            if (!classificacoes.isEmpty()) {
                                out.println("<table align=\"center\" border=\"1\">");
                                out.println("<tr>");
                                out.println("<th>Time</th>");
                                out.println("<th>Pontos</th>");
                                out.println("<th>Jogos</th>");
                                out.println("<th>Vitórias</th>");
                                out.println("<th>Empates</th>");
                                out.println("<th>Derrotas</th>");
                                out.println("<th>GP</th>");
                                out.println("<th>GC</th>");
                                out.println("<th>Saldo</th>");
                                out.println("<th>%</th>");
                                out.println("</tr>");
                                for (Classificacao c : classificacoes) {
                                    if (c.getCampeonato().getId() == camp.getId()) {
                                        out.println("<tr>");
                                        out.println("<td>" + c.getTime().getNome() + "</td>");
                                        out.println("<td>" + c.getPontos() + "</td>");
                                        out.println("<td>" + c.getJogos() + "</td>");
                                        out.println("<td>" + c.getVitorias() + "</td>");
                                        out.println("<td>" + c.getEmpates() + "</td>");
                                        out.println("<td>" + c.getDerrotas() + "</td>");
                                        out.println("<td>" + c.getGolsPro() + "</td>");
                                        out.println("<td>" + c.getGolsCon() + "</td>");
                                        out.println("<td>" + c.getSaldoGols() + "</td>");
                                        out.println("<td>" + " - " + "</td>");
                                        out.println("</tr>");
                                    }
                                }
                                out.println("</table>");
                            }
                        }
                    %>                                                                             
                </form>
            </div>
        </div>            
    </body>
</html>